package com.iwomy.secureplat.platform.dto;

import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 设备信息表
 *
 * @author pig
 * @date 2023-11-21 15:14:16
 */
@Data
@Schema(description = "设备信息表")
public class BasicDeviceDTO extends Model<BasicDeviceDTO> {

	/**
	* ID
	*/
    @Schema(description="ID")
    private Long id;

	/**
	* 二维码
	*/
    @Schema(description="二维码")
    private String qrcode;

	/**
	* IMEI
	*/
    @Schema(description="IMEI")
    private String imei;

	/**
	 * IMEI
	 */
	@Schema(description="IMEI")
	private List<String> imeis;

	/**
	 * IMEI
	 */
	@Schema(description="IMEI")
	private String imeiLike;

	/**
	* IMEI别名
	*/
    @Schema(description="IMEI别名")
    private String imeiAlias;

	/**
	* 设备类型
	*/
    @Schema(description="设备类型")
    private Long deviceTypeId;

	/**
	 * 设备类型名称
	 */
	@Schema(description = "设备类型名称")
	private String deviceTypeName;

	/**
	 * 安装点id
	 */
	@Schema(description="安装点id")
	private Long locationId;

	/**
	 * 建筑物id
	 */
	@Schema(description="建筑物id")
	private Long buildingId;

	/**
	* 设备型号
	*/
    @Schema(description="设备型号")
    private Long deviceModelId;

	/**
	 * 设备型号名称
	 */
	@Schema(description = "设备型号名称")
	private String deviceModelName;

	/**
	* 生产商
	*/
    @Schema(description="生产商")
    private String producer;

	/**
	* 设备批次号
	*/
    @Schema(description="设备批次号")
    private String deviceBatchNumber;

	/**
	* IMSI
	*/
    @Schema(description="IMSI")
    private Long imsi;

	/**
	 * 所属单位id
	 */
	@Schema(description="所属单位id")
	private Long deptId;

	/**
	* 装箱号
	*/
    @Schema(description="装箱号")
    private String packingNumber;

	/**
	* ICCID
	*/
    @Schema(description="ICCID")
    private Long iccid;

	/**
	 * 设备状态 10 未激活 20 正常 30 故障 40 报警 50 离线
	 */
	@Schema(description = "设备状态 10 未激活 20 正常 30 故障 40 报警 50 离线")
	private Integer deviceState;

	/**
	 * 设备使用状态 10 正常使用 20 设备手动停用 30 设备到期停用。
	 */
	@Schema(description = "设备使用状态 10 正常使用 20 设备手动停用 30 设备到期停用。")
	private Integer useState;

	/**
	 * 设备绑定状态 10未出库未绑定 20 出库未绑定 30 已绑定
	 */
	@Schema(description = "设备绑定状态 10未出库未绑定 20 出库未绑定 30 已绑定")
	private Integer bindState;

	/**
	 * 库存状态 10 库存 20 已出库
	 */
	@Schema(description = "库存状态 10 库存 20 已出库")
	private Integer stocks;

	/**
	* 安装点位
	*/
    @Schema(description="安装点位")
    private Long installLocationId;

	/**
	* 模式 1 工程(默认)
	*/
    @Schema(description="模式 1 工程(默认)")
    private Integer model;

	/**
	* 信号
	*/
    @Schema(description="信号")
    private String signal;

	/**
	* 排序
	*/
    @Schema(description="排序")
    private Integer sort;

	/**
	* 10启用 20禁用
	*/
    @Schema(description="10启用 20禁用")
    private Integer state;

	/**
	 * 备注
	 */
	@Schema(description = "备注")
	private String remarks;

	/**
	* 创建人
	*/
    @Schema(description="创建人")
    private String createBy;

	/**
	 * 创建时间区间 [开始时间，结束时间]
	 */
	@Schema(description = "创建时间区间 [开始时间，结束时间]")
	private LocalDateTime[] createTime;

	/**
	* 修改人
	*/
    @Schema(description="修改人")
    private String updateBy;

	/**
	* 修改时间
	*/
    @Schema(description="修改时间")
    private LocalDateTime updateTime;

	/**
	 * 单位限制层级
	 */
	@Schema(description="单位限制层级")
	private Integer deptLimit;

	private List<Long> rulesIds;

	/**
	 * 10 通用设备 20视频类设备
	 */
	@Schema(description = "10 通用设备 20视频类设备")
	private Integer type;

	/**
	 * 所属单位id
	 */
	@Schema(description = "所属单位id")
	private Long createDeptId;
}